package com.dongjiantong.biz.service;

import com.dongjiantong.biz.model.DjtFarmReportsForms;
import com.dongjiantong.mybatis.BaseService;
import com.github.pagehelper.PageInfo;
import tk.mybatis.mapper.entity.Example;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by ThinkPad on 2017/11/20.
 */
public interface DjtFarmReportsFormsService extends BaseService<DjtFarmReportsForms> {

    /**
     *  根据官方兽id和时间查询产地检疫报表
     *
     * @param pageNum   页码
     * @param pageSize  一页几条
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param vetUserId 官方兽医Id
     * @return
     */
    PageInfo<DjtFarmReportsForms> selectByVetUserIdAndReportTime(int pageNum, int pageSize, Date startTime, Date endTime, Long vetUserId);

    /**
     * 根据动物种类分组  查询合计 ①申报数（动物数量）②合格数③不合格数
     *
     * @param start 从日期
     * @param end   到日期
     * @param area  区域
     * @return List<Object>
     */

    List<Map<String, Object>> findSumGroupByBreedType(Date start, Date end, String area);


    /**
     * 查询合计--申报数、合格数、不合格数
     *
     * @param start     从日期
     * @param end       到日期
     * @param breedType 产品种类
     * @return List<Object>
     */
    List<Map<String, Object>> findSum(Date start, Date end, Integer breedType, String area);

    /**
     * 查询合计--根据申报的去向
     *
     * @param start     从日期
     * @param end       到日期
     * @param breedType 产品种类
     * @return List<Object>
     */
    List<Map<String, Integer>> findSumByIsToLocal(Date start, Date end, Integer breedType, String area);

    /**
     * 查询合计--本地屠宰去向
     *
     * @param start     从日期
     * @param end       到日期
     * @param breedType 产品种类
     * @return List<Object>
     */
    List<Map<String, Object>> findSumGroupByButcherFactory(Date start, Date end, Integer breedType, String area);

    /**
     * 查询合计--区域来源分布
     *
     * @param start     从日期
     * @param end       到日期
     * @param breedType 产品种类
     * @return List<Object>
     */
    List<Map<String, Object>> findSumGroupByBreedFactoryTown(Date start, Date end, Integer breedType, String area);

    /**
     * 分页查询
     *
     * @param pageNo   页码
     * @param pageSize 每页多少条
     * @param start    从日期
     * @param end      到日期
     * @return Paging<BreedReportsForm>
     */
    PageInfo<DjtFarmReportsForms> pagingBreedReportsForm(Integer pageNo, Integer pageSize, Date start, Date end, Integer breedType, String area);


    /**
     * 产地检疫总体情况
     *
     * @return
     */
    List<Map> cdjy(Map criteria);


    /**
     * 统计本地产地检疫数量
     *
     * @param
     * @return
     */
    Integer local(Map criteria);
}
